<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Roundup (Bugtracker)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Roundup_(Bugtracker)"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Roundup_Bugtracker rootpage-Roundup_Bugtracker skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Roundup (Bugtracker)</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><table class="float-right infobox toccolours toptextcells" style="border-spacing:5px; font-size:90%; text-align:left; width:21em;">
<tbody><tr>
<th colspan="2" class="hintergrundfarbe6" style="font-size:105%; text-align:center;">Roundup
</th></tr>
<tr>
<th colspan="2" class="hintergrundfarbe5" style="font-size:105%; text-align:center;">Basisdaten
<p class="mw-empty-elt">
</p>
</th></tr>
<tr>
<td><b><a href="Maintainer" title="Maintainer">Hauptentwickler</a></b>
</td>
<td>Ralf Schlatterbeck
</td></tr>
<tr>
<td><b><a href="Softwareentwickler" title="Softwareentwickler">Entwickler</a></b>
</td>
<td>Richard Jones, Roundup Initiative
</td></tr>
<tr>
<td><b>Aktuelle <a href="Version_(Software)" title="Version (Software)">Version</a></b>
</td>
<td>2.3.0<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> <br> (13. Juli 2023)
</td></tr>
<tr>
<td><b><a href="Betriebssystem" title="Betriebssystem">Betriebssystem</a></b>
</td>
<td>Alle auf denen <a href="Python_(Programmiersprache)" title="Python (Programmiersprache)">Python</a> läuft.
</td></tr>
<tr>
<td><b><a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a></b>
</td>
<td><span class="wikidata-content"><a href="Python_(Programmiersprache)" title="Python (Programmiersprache)">Python</a><sup id="cite_ref-_3e68552ef5cb14bc_2-0" class="reference"><a href="#cite_note-_3e68552ef5cb14bc-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></span>
</td></tr>
<tr>
<td><b>Lizenz</b>
</td>
<td>Verschiedene Freie-Software-Lizenzen<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</td></tr>
<tr>
<td><b><a href="Lokalisierung_(Softwareentwicklung)" title="Lokalisierung (Softwareentwicklung)">deutschsprachig</a></b>
</td>
<td>ja
</td></tr>
<tr>
<td class="hintergrundfarbe5" colspan="2" style="text-align:center;"><a rel="nofollow" class="external text" href="https://www.roundup-tracker.org/">www.roundup-tracker.org</a>
</td></tr></tbody></table>
<p><b>Roundup</b> ist ein <a href="Freie_Software" title="Freie Software">freier</a>, <a href="Webbasiert" class="mw-redirect" title="Webbasiert">webbasierter</a> <a href="Bugtracker" title="Bugtracker">Issuetracker</a> mit umfassender <a href="E-Mail" title="E-Mail">Mail</a>-Schnittstelle. Er ist in der <a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a> <a href="Python_(Programmiersprache)" title="Python (Programmiersprache)">Python</a> implementiert und leicht erweiterbar. Von seiner <a href="Gemeinschaft" title="Gemeinschaft">Community</a> wird Roundup als Issue-Tracker bezeichnet, da sich das Konzept nicht nur auf <a href="Programmfehler" title="Programmfehler">Bugs</a>, sondern auf Vorgänge bzw. Aufgaben im Allgemeinen anwenden lässt.
</p>
<div class="mw-heading mw-heading2"><h2 id="Entwicklung">Entwicklung</h2></div>
<p>Roundup basiert auf einem preisgekrönten Design von Ka-Ping Yee und wurde lange unter der Leitung von Richard Jones weiterentwickelt. Inzwischen gibt es viele weitere Entwickler wie u. a. Ezio Melotti, Berndhard Reiter, Ralf Schlatterbeck, Anatoly Techtonik und John P. Rouillard. Anatoly Techtonik gab die am 11. Januar 2016 erschienene Version 1.5.1 heraus;
Rouillard die Versionen 1.6.0 (Juli 2018) – 2.3.0 (Juli 2023).
</p>
<div class="mw-heading mw-heading2"><h2 id="Funktionsumfang">Funktionsumfang</h2></div>
<p>In der Standard-Konfiguration hat Roundup folgenden Funktionsumfang:
</p>
<ul><li>eine webbasierte Oberfläche zur Bearbeitung der Vorgänge bzw. Aufgaben (engl. <i>issues</i>), und zur Suche nach solchen. Ab Version 1.4.21 enthält Roundup zusätzlich eine Vorlage (engl. <i>Template</i>) mit responsive Design auf der Basis von Bootstrap</li>
<li>ein <a href="E-Mail" title="E-Mail">Mail</a>-Gateway, das es erlaubt, Vorgänge bzw. Aufgaben zu erstellen und zu bearbeiten</li>
<li>eine Datenbank-Abstraktionsschicht, die gegenwärtig u. a. <a href="PostgreSQL" title="PostgreSQL">PostgreSQL</a>, <a href="MySQL" title="MySQL">MySQL</a> und <a href="SQLite" title="SQLite">SQLite</a> unterstützt</li>
<li>jeder Vorgang bzw. jede Aufgabe hat seine eigene Interessentenliste (<i>nosy</i>-Liste), die zur Benachrichtigung per E-Mail verwendet wird</li>
<li>ein auf Rollen, Klassen und Objekten basierendes Berechtigungssystem</li>
<li>einen interaktiven Kommandozeilen-Interpreter (engl. <i>shell</i>) zum Erstellen und Einspielen von <a href="Backup" class="mw-redirect" title="Backup">Backups</a> sowie zum Bearbeiten der Objekte</li></ul>
<p>Der Funktionsumfang lässt sich leicht durch selbst programmierte Erweiterungen
(sogenannte Detektoren; siehe unten) an neue Anforderungen anpassen.
</p><p>Roundup lässt sich sowohl als eigenständiger Serverprozess betreiben als auch über <a href="Mod_python" title="Mod python">mod python</a> oder (notfalls) als <a href="Common_Gateway_Interface" title="Common Gateway Interface">CGI</a>-Skript mit Hilfe von z. B. dem <a href="Webserver" title="Webserver">Webserver</a> Programm <i>apache</i>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Konzepte">Konzepte</h2></div>
<p>Roundup ist in hohem Maße anpassbar:<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Datenbankschema">Datenbankschema</h3></div>
<p>Das Schema beschreibt Klassen von Objekten. In dem als Vorlage mitgelieferten Muster namens <i>classic</i> gibt es zum Beispiel die Klassen <i>issue</i> (Vorgang), <i>msg</i> (Nachricht), <i>user</i> (Benutzer), <i>file</i> (Dateianhang). Leicht lassen sich weitere Klassen (z. B. Kunde, Produkt, Standort) oder Beziehungen (engl. <i>link</i>) zwischen Klassen ergänzen.
</p><p>Das Datenbankschema wird in einer <a href="Python_(Programmiersprache)" title="Python (Programmiersprache)">Python</a>-Datei im Wurzelverzeichnis der jeweiligen Bugtracker-Instanz festgelegt; dieses Schema wird von Roundup beim Start (bzw., wenn nicht als eigenständiger Serverprozess betrieben), des <a href="Apache_HTTP_Server" title="Apache HTTP Server">Apache-Servers</a> eingelesen. Wenn dabei Änderungen festgestellt werden (z. B. in Form neuer Felder), werden die Tabellen der zugrundeliegenden relationalen Datenbank automatisch erweitert.
</p>
<div class="mw-heading mw-heading3"><h3 id="Seiten-Templates">Seiten-Templates</h3></div>
<p>Roundup verwendet die von <a href="Zope_(Webanwendungsserver)" title="Zope (Webanwendungsserver)">Zope</a> bekannte <a href="Template_Attribute_Language" title="Template Attribute Language">Template Attribute Language</a> (TAL), um <a href="HTML" class="mw-redirect" title="HTML">HTML</a>- oder <a href="XHTML" class="mw-redirect" title="XHTML">XHTML</a>-Seiten zu erzeugen. Manche Templates (<a href="Schablone" title="Schablone">Schablonen</a>) sind universell verwendbar, wie z. B. _generic.index.html, das (berechtigten Usern) die Bearbeitung der Einträge aller Klassen erlaubt, die über kein eigenes index-Template verfügen.
</p><p>Trifft eine Anfrage für „issue123“ ein, so wird zunächst dieser <i>Designator</i> in die <a href="Klasse_(Objektorientierung)" title="Klasse (Objektorientierung)">Klasse</a> „issue“ und die <a href="Identifikationsnummer" class="mw-redirect" title="Identifikationsnummer">ID</a> „123“ zerlegt; als Template-Auswahl wird „item“ angenommen, sofern kein anderes angegeben wurde. Es wird zunächst nach der Template-Datei issue.item.html gesucht; ist diese nicht vorhanden, wird alternativ _generic.item.html verwendet. Nur falls dieses auch fehlt, tritt ein Fehler auf.
</p>
<div class="mw-heading mw-heading3"><h3 id="Detektoren">Detektoren</h3></div>
<p>Viele Funktionen von Roundup, incl. mancher Standardfunktionen, werden mit Hilfe von sogenannten <i>Detektoren</i> realisiert, die im Unterverzeichnis „detectors“ der Tracker-Instanz abgelegt werden. Es handelt sich um Python-<a href="Subroutine" class="mw-redirect" title="Subroutine">Funktionen</a>, denen das zu ändernde (soweit schon vorhanden) Objekt sowie die Änderungen an den Attributwerten zur Verfügung stehen.
</p><p>Detektoren werden in <i>Auditoren</i> und <i>Reaktoren</i> unterteilt. Die Auditoren dienen in erster Linie dazu, vor der Ausführung einer Transaktion automatisch bestimmte Änderungen vorzunehmen. Zum Beispiel wird in der Standardkonfiguration ein Anwender (engl. <i>user</i>) zur Interessenten-Liste (engl. <i>nosy list</i>) hinzugefügt, wenn ihm ein Vorgang bzw. eine Aufgabe (engl. <i>issue</i>) zur Bearbeitung zugewiesen wird. Es können auch unerlaubte Änderungen zurückgewiesen und (zumindest in der Web-Oberfläche) der Anwender zur Korrektur seiner Eingaben aufgefordert werden. Die Reaktoren werden nach den Auditoren ausgeführt und dienen z. B. dazu, neue Nachrichten bzw. Kommentare in einem Vorgang automatisch per E-Mail an alle Mitglieder der jeweiligen Interessenten-Liste zu verschicken.
</p><p>Detektoren werden ausgelöst, wenn eine der Aktionen
</p>
<ul><li>„create“ (erzeugen eines Objekts)</li>
<li>„set“ (ändern von Attributen)</li>
<li>„retire“ (deaktivieren) und</li>
<li>„restore“ (reaktivieren)</li></ul>
<p>ausgeführt (bzw. der Versuch unternommen) wird. Sie lassen sich verwenden, um auch komplexe Verwaltungsarbeitsabläufe (engl. <i>workflow</i>) abzubilden.
</p>
<div class="mw-heading mw-heading3"><h3 id="Erweiterungen">Erweiterungen</h3></div>
<p>Im Instanz-Unterverzeichnis „extensions“ können weitere Funktionen abgelegt werden, die für erweiterte Funktionalitäten benötigt werden, die z. B. mit den Mitteln der <a href="Template_Attribute_Language" title="Template Attribute Language">TAL</a> allein nicht realisierbar sind; auch neue Aktionen sind möglich.
</p><p>Module mit Funktionen, die sowohl von Detektoren als auch von Erweiterungen verwendet werden können, können im Instanz-Unterverzeichnis „lib“ abgelegt werden.
</p>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.roundup-tracker.org/">www.roundup-tracker.org</a></li>
<li><a rel="nofollow" class="external text" href="https://www.runtux.com/files/download/roundup.4.pdf">Roundup: Einführung und Anwendungsbeispiele</a>, von Ralf Schlatterbeck (PDF; 246 kB)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://sourceforge.net/p/roundup/mailman/message/37680241/">E-Mail-Ankündigung vom 2023-07-13</a></span>
</li>
<li id="cite_note-_3e68552ef5cb14bc-2"><span class="mw-cite-backlink"><a href="#cite_ref-_3e68552ef5cb14bc_2-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.openhub.net/p/roundup/analyses/latest/languages_summary"><cite style="font-style:italic"><span lang="en">The roundup Open Source Project on Open Hub: Languages Page</span></cite>.</a> In: <cite style="font-style:italic">Open Hub</cite>. (abgerufen am 26. September 2018).</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://roundup.hg.sourceforge.net/hgweb/roundup/roundup/file/tip/COPYING.txt">Lizenztexte von Roundup aus dem aktuellen Versionskontrollsystem</a></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><a href="#cite_ref-4">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.roundup-tracker.org/cgi-bin/moin.cgi/CustomisationExamples">roundup-tracker.org</a></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-11-01" href="https://de.wikipedia.org/wiki/?title=Roundup_(Bugtracker)&oldid=261113908">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>